<!DOCTYPE html>
<html lang="en-US">
    <head>
        <title>Mac::Carbon - Access to Mac OS Carbon API - metacpan.org</title>
        <link rel="preload" as="fetch" href="https://metacpan.org/account/login_status" crossorigin="anonymous" />
        <link href="https://metacpan.org/_assets/b8ccceeed47a0652049703d99326a9cea4933443.css" rel="stylesheet" type="text/css">
        <script src="https://metacpan.org/_assets/6bfedafe2d7caa915b7d84f61b45936818e3242e.js" type="text/javascript" defer></script>
        <link rel="alternate" type="application/rss+xml" title="Recent CPAN Uploads of Mac-Carbon - MetaCPAN" href="https://metacpan.org/dist/Mac-Carbon/releases.rss" />
        <link rel="canonical" href="./Mac::Carbon.html" />
        <meta name="description" content="Access to Mac OS Carbon API" />
        <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=5">
        <link rel="shortcut icon" href="https://metacpan.org/static/icons/favicon.ico">
        <link rel="apple-touch-icon" sizes="152x152" href="https://metacpan.org/static/icons/apple-touch-icon.png">
        <link rel="search" href="https://metacpan.org/static/opensearch.xml" type="application/opensearchdescription+xml" title="MetaCPAN">
        <script>
          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');

          (function(skey, ga_id){
            ga('create', ga_id, {
              siteSpeedSampleRate : 100,
              storage             : 'none',
              clientId            : localStorage.getItem(skey)
            });
            ga(function(tracker) {
              localStorage.setItem(skey, tracker.get('clientId'));
            });
            ga('send', 'pageview');
          })('ga:clientId', 'UA-27829474-1');
        </script>
<meta name="twitter:card"        content="summary" />
<meta name="twitter:url"         content="https://metacpan.org/pod/Mac::Carbon" />
<meta name="twitter:title"       content="Mac::Carbon" />
<meta name="twitter:description" content="Access to Mac OS Carbon API" />
<meta name="twitter:site"        content="metacpan" />
    </head>
    <body>
        <nav class="navbar navbar-default" role="navigation">
            <div class="header-logo-large hidden-xs">
              <a href="https://metacpan.org/" tabindex="0">
                <svg class="logo" aria-label="MetaCPAN">
                  <use class="logo" href="/static/images/metacpan-logo.svg#logo" />
                </svg>
              </a>
            </div>
            <div class="header-logo-icon visible-xs">
              <a href="https://metacpan.org/">
                <svg class="logo" aria-label="MetaCPAN">
                  <use class="logo" href="/static/images/metacpan-logo.svg#dots" />
                </svg>
              </a>
            </div>
            <ul class="nav navbar-nav menu-items hidden-xs hidden-sm">
              <li><a href="https://metacpan.org/about">About</a></li>
              <li><a href="https://metacpan.org/about/sponsors">Sponsor</a></li>
              <li><a href="https://grep.metacpan.org/">grep::cpan</a></li>
              <li><a href="https://metacpan.org/recent">Recent</a></li>
              <li><a href="https://metacpan.org/about/faq">FAQ</a></li>
              <li><a href="https://metacpan.org/tools">Tools</a></li>
              <li><a href="https://fastapi.metacpan.org/">API</a></li>
            </ul>
            <ul class="nav navbar-nav navbar-right">
                <button type="button" class="searchbar-btn visible-xs visible-sm">
                    <i class="fa fa-search button-fa-icon"></i>
                </button>
                <form action="https://metacpan.org/search" class="searchbar-form visible-md visible-lg search-form form-horizontal">
                   <input type="hidden" name="size" id="metacpan_search-size" value="20">
                  <div class="form-group">
                      <div class="search-group">
                        <i class="fa fa-search"></i>
                        <input type="text" name="q" placeholder="Search the CPAN" size="41" autocorrect="off" autocapitalize="off" spellcheck="false" id="metacpan_search-input" class="form-control" value="">
                      </div>
                  </div>
                </form>
                    <li class="icon-slidepanel visible-xs visible-sm">
                      <button data-toggle="slidepanel" data-target=".slidepanel">
                        <span class="button-fa-icon">
                          <i class="fa fa-bars slidepanel-open"></i>
                          <i class="fa fa-times slidepanel-close"></i>
                        </span>
                      </button>
                    </li>
                <form action="https://metacpan.org/account/logout" method="POST" id="metacpan-logout"></form>
                <li class="dropdown logged_in" style="display: none;">
                    <button type="button" class="dropdown-toggle" data-toggle="dropdown">
                      <i class="fa fa-user button-fa-icon logged-in-icon" aria-hidden="true"></i>
                      <i class="fas fa-chevron-down"></i>
                    </button>
                    <ul class="dropdown-menu">
                        <li><a href="https://metacpan.org/account/identities">Identities</a></li>
                        <li><a href="https://metacpan.org/account/profile">Profile</a></li>
                        <li><a href="https://metacpan.org/account/favorite/list">Favorites</a></li>
                        <li>
                            <a href="./Mac::Carbon.html#" type="button" onclick="$('#metacpan-logout').submit(); return false">
                              Logout
                            </a>
                        </li>
                    </ul>
                </li>
                <li class="dropdown logged_out" style="display: none;">
                    <button type="button" class="dropdown-toggle" data-toggle="dropdown">
                      <i class="fa fa-user button-fa-icon" aria-hidden="true"></i>
                      <i class="fas fa-chevron-down"></i>
                    </button>
                    <ul class="dropdown-menu">
                        <li>
                            <a href="https://metacpan.org/login/github">
                                <i class="fab fa-github fa-fw"></i>
                                GitHub
                            </a>
                        </li>
                        <li>
                            <a href="https://metacpan.org/login/twitter">
                                <i class="fab fa-twitter fa-fw"></i>
                                Twitter
                            </a>
                        </li>
                        <li>
                            <a href="https://metacpan.org/login/google">
                                <i class="fab fa-google fa-fw"></i>
                                Google
                            </a>
                        </li>
                    </ul>
                </li>
                <li class="dropdown logged_placeholder">
                    <button>
                      <i class="fa fa-user button-fa-icon" aria-hidden="true"></i>
                    </button>
                </li>
            </ul>
        </nav>
        <div class="page-content ">
          <!--
          <div class="top-notify-banner">
            <i class="fas fa-info-circle"></i>
          </div>
          -->
          <nav class="sidebar">
            <div class="slidepanel">
              <ul class="nav-list ">
    <li class="nav-header no-margin-top">
      <div class="ttip" data-toggle="tooltip" data-placement="bottom" title="The date that this version of Mac-Carbon was released.">
      <span class="relatize">06 Oct 2009 04:54:36 UTC</span>
    </li>
  <li>
    Distribution: <a href="https://metacpan.org/dist/Mac-Carbon">Mac-Carbon</a>
  </li>
  <li>
    Module version: 0.82
  </li>
  <li>
    <a data-keyboard-shortcut="g s" href="https://metacpan.org/dist/Mac-Carbon/source/Carbon.pm">Source</a>
    (<a href="https://metacpan.org/dist/Mac-Carbon/source/Carbon.pm?raw=1">raw</a>)
  </li>
  <li>
    <a data-keyboard-shortcut="g b" href="https://metacpan.org/dist/Mac-Carbon/source">Browse</a>
    (<a href="https://metacpan.org/dist/Mac-Carbon/source?raw=1">raw</a>)
  </li>
    <li>
      <a data-keyboard-shortcut="g c" href="https://metacpan.org/dist/Mac-Carbon/changes">Changes</a>
    </li>
    <li>
      <a class="nopopup" href="https://metacpan.org/dist/Mac-Carbon/contribute">How to Contribute</a>
    </li>
    <li>
      <a rel="noopener nofollow" data-keyboard-shortcut="g i" href="https://rt.cpan.org/Public/Dist/Display.html?Name=Mac-Carbon">Issues</a>
      (12)
    </li>
    <li>
      <a rel="noopener nofollow" href="http://matrix.cpantesters.org/?dist=Mac-Carbon+0.82" title="Matrix">Testers</a>
        <span title="(pass / fail / na)">(<a rel="noopener nofollow" href="https://www.cpantesters.org/distro/M/Mac-Carbon.html?oncpan=1&amp;distmat=1&amp;version=0.82&amp;grade=2" style="color: #090">0</a> / <a rel="noopener nofollow" href="https://www.cpantesters.org/distro/M/Mac-Carbon.html?oncpan=1&amp;distmat=1&amp;version=0.82&amp;grade=3" style="color: #900">1</a> / <a rel="noopener nofollow" href="https://www.cpantesters.org/distro/M/Mac-Carbon.html?oncpan=1&amp;distmat=1&amp;version=0.82&amp;grade=4">0</a>)</span>
    </li>
    <li>
      <a rel="noopener nofollow" href="http://cpants.cpanauthors.org/release/CNANDOR/Mac-Carbon-0.82">Kwalitee</a>
    </li>
    <li>
      <div class="ttip" data-toggle="tooltip" data-placement="bottom" title="The # people with an indexing permission on Mac-Carbon who have released something to CPAN in the last 2 years (i.e. the # people likely able to release critical fixes in a timely manner)">
      Bus factor: 0
      </div>
    </li>
    <li>
      <a rel="noopener nofollow" href="http://cpancover.com/latest/Mac-Carbon-0.82/index.html">% Coverage </a>
    </li>
    <li>
      License: unknown
    </li>
    <li class="nav-header">Activity</li>
    <li>
<div class="activity-graph">
    <img src="https://metacpan.org/dist/Mac-Carbon/activity.svg?res=month" />
    <div class="comment">24 month</div>
</div>
    </li>
    <li class="nav-header">Tools</li>
    <li>
      <a itemprop="downloadUrl" href="https://cpan.metacpan.org/authors/id/C/CN/CNANDOR/Mac-Carbon-0.82.tar.gz">
      Download (<span itemprop="fileSize">296.24KB</span>)</a>
    </li>
    <li>
      <a href="https://explorer.metacpan.org/?url=%2Fmodule%2FCNANDOR%2FMac-Carbon-0.82%2FCarbon.pm">
        MetaCPAN Explorer
      </a>
    </li>
    <li>
      <a href="https://metacpan.org/dist/Mac-Carbon/permissions">
        Permissions
      </a>
    </li>
    <li>
      <a href="https://metacpan.org/dist/Mac-Carbon/releases.rss">
        Subscribe to distribution
      </a>
    </li>
    <li>
      <button class="btn btn-link" data-toggle="modal" data-target="#metacpan_install-instructions-dialog">
        Install Instructions
      </button>
    </li>
    <li>
      <form action="https://metacpan.org/search">
        <input type="hidden" name="q" value="dist:Mac-Carbon">
        <input type="search" name="q" placeholder="Search distribution" class="form-control tool-bar-form">
        <input type="submit" style="display: none">
      </form>
    </li>
    <li>
      <form action="https://grep.metacpan.org/search">
        <input type="hidden" name="qd" value="Mac-Carbon">
        <input type="hidden" name="source" value="metacpan">
        <input type="search" name="q" placeholder="grep distribution" class="form-control tool-bar-form">
        <input type="submit" style="display: none">
     </form>
    </li>
    <li class="version-jump">
<select onchange="document.location.href=&#39;/release/&#39;+this.value+&#39;/view/Carbon.pm&#39;" class="form-control tool-bar-form">
  <option disabled selected>Jump to version</option>
<option
  disabled
  value="CNANDOR/Mac-Carbon-0.82"
>0.82
  (CNANDOR on 2009-10-06)</option>
<option
  
  value="CNANDOR/Mac-Carbon-0.81"
>0.81
  (CNANDOR on 2009-09-27)</option>
<option
  
  value="CNANDOR/Mac-Carbon-0.80"
>0.80
  (CNANDOR on 2009-09-17)</option>
<option
  
  value="CNANDOR/Mac-Carbon-0.77"
>0.77
  (CNANDOR on 2006-07-07)</option>
<option
  
  value="CNANDOR/Mac-Carbon-0.76"
>0.76
  (CNANDOR on 2006-06-22)</option>
<option
  
  value="CNANDOR/Mac-Carbon-0.75"
>0.75
  (CNANDOR on 2006-06-20)</option>
<option
  
  value="CNANDOR/Mac-Carbon-0.74"
>0.74
  (CNANDOR on 2005-05-15)</option>
<option
  
  value="CNANDOR/Mac-Carbon-0.73"
>0.73
  (CNANDOR on 2005-05-04)</option>
<option
  
  value="CNANDOR/Mac-Carbon-0.72"
>0.72
  (CNANDOR on 2005-03-09)</option>
<option
  
  value="CNANDOR/Mac-Carbon-0.71"
>0.71
  (CNANDOR on 2005-02-20)</option>
<optgroup label="BackPAN">'
<option
  
  value="CNANDOR/Mac-Carbon-0.70"
>0.70
  (CNANDOR on 2004-05-11)</option>
<option
  
  value="CNANDOR/Mac-Carbon-0.66"
>0.66
  (CNANDOR on 2004-03-24)</option>
<option
  
  value="CNANDOR/Mac-Carbon-0.65"
>0.65
  (CNANDOR on 2004-03-10)</option>
<option
  
  value="CNANDOR/Mac-Carbon-0.64"
>0.64
  (CNANDOR on 2004-02-19)</option>
<option
  
  value="CNANDOR/Mac-Carbon-0.63"
>0.63
  (CNANDOR on 2003-11-21)</option>
<option
  
  value="CNANDOR/Mac-Carbon-0.62"
>0.62
  (CNANDOR on 2003-10-31)</option>
<option
  
  value="CNANDOR/Mac-Carbon-0.61"
>0.61
  (CNANDOR on 2003-10-28)</option>
<option
  
  value="CNANDOR/Mac-Carbon-0.60"
>0.60
  (CNANDOR on 2003-10-28)</option>
<option
  
  value="CNANDOR/Mac-Carbon-0.54"
>0.54
  (CNANDOR on 2003-08-13)</option>
<option
  
  value="CNANDOR/Mac-Carbon-0.53"
>0.53
  (CNANDOR on 2003-06-25)</option>
<option
  
  value="CNANDOR/Mac-Carbon-0.52"
>0.52
  (CNANDOR on 2003-05-23)</option>
<option
  
  value="CNANDOR/Mac-Carbon-0.51"
>0.51
  (CNANDOR on 2003-04-07)</option>
<option
  
  value="CNANDOR/Mac-Carbon-0.50"
>0.50
  (CNANDOR on 2003-04-07)</option>
<option
  
  value="CNANDOR/Mac-Carbon-0.05"
>0.05
  (CNANDOR on 2003-03-07)</option>
<option
  
  value="CNANDOR/Mac-Carbon-0.04"
>0.04
  (CNANDOR on 2003-03-06)</option>
<option
  
  value="CNANDOR/Mac-Carbon-0.03"
>0.03
  (CNANDOR on 2002-12-17)</option>
<option
  
  value="CNANDOR/Mac-Carbon-0.02"
>0.02
  (CNANDOR on 2002-12-10)</option>
<option
  
  value="CNANDOR/Mac-Carbon-0.01"
>0.01
  (CNANDOR on 2002-11-13)</option>
</optgroup>
</select>
    </li>
    <li class="version-diff">
<select onchange="document.location.href='/release/CNANDOR/Mac-Carbon-0.82/diff/' + encodeURIComponent(this.value) + '/Carbon.pm'
" class="form-control tool-bar-form">
  <option disabled selected>Diff with version</option>
<option
  disabled
  value="CNANDOR/Mac-Carbon-0.82"
>0.82
  (CNANDOR on 2009-10-06)</option>
<option
  
  value="CNANDOR/Mac-Carbon-0.81"
>0.81
  (CNANDOR on 2009-09-27)</option>
<option
  
  value="CNANDOR/Mac-Carbon-0.80"
>0.80
  (CNANDOR on 2009-09-17)</option>
<option
  
  value="CNANDOR/Mac-Carbon-0.77"
>0.77
  (CNANDOR on 2006-07-07)</option>
<option
  
  value="CNANDOR/Mac-Carbon-0.76"
>0.76
  (CNANDOR on 2006-06-22)</option>
<option
  
  value="CNANDOR/Mac-Carbon-0.75"
>0.75
  (CNANDOR on 2006-06-20)</option>
<option
  
  value="CNANDOR/Mac-Carbon-0.74"
>0.74
  (CNANDOR on 2005-05-15)</option>
<option
  
  value="CNANDOR/Mac-Carbon-0.73"
>0.73
  (CNANDOR on 2005-05-04)</option>
<option
  
  value="CNANDOR/Mac-Carbon-0.72"
>0.72
  (CNANDOR on 2005-03-09)</option>
<option
  
  value="CNANDOR/Mac-Carbon-0.71"
>0.71
  (CNANDOR on 2005-02-20)</option>
<optgroup label="BackPAN">'
<option
  
  value="CNANDOR/Mac-Carbon-0.70"
>0.70
  (CNANDOR on 2004-05-11)</option>
<option
  
  value="CNANDOR/Mac-Carbon-0.66"
>0.66
  (CNANDOR on 2004-03-24)</option>
<option
  
  value="CNANDOR/Mac-Carbon-0.65"
>0.65
  (CNANDOR on 2004-03-10)</option>
<option
  
  value="CNANDOR/Mac-Carbon-0.64"
>0.64
  (CNANDOR on 2004-02-19)</option>
<option
  
  value="CNANDOR/Mac-Carbon-0.63"
>0.63
  (CNANDOR on 2003-11-21)</option>
<option
  
  value="CNANDOR/Mac-Carbon-0.62"
>0.62
  (CNANDOR on 2003-10-31)</option>
<option
  
  value="CNANDOR/Mac-Carbon-0.61"
>0.61
  (CNANDOR on 2003-10-28)</option>
<option
  
  value="CNANDOR/Mac-Carbon-0.60"
>0.60
  (CNANDOR on 2003-10-28)</option>
<option
  
  value="CNANDOR/Mac-Carbon-0.54"
>0.54
  (CNANDOR on 2003-08-13)</option>
<option
  
  value="CNANDOR/Mac-Carbon-0.53"
>0.53
  (CNANDOR on 2003-06-25)</option>
<option
  
  value="CNANDOR/Mac-Carbon-0.52"
>0.52
  (CNANDOR on 2003-05-23)</option>
<option
  
  value="CNANDOR/Mac-Carbon-0.51"
>0.51
  (CNANDOR on 2003-04-07)</option>
<option
  
  value="CNANDOR/Mac-Carbon-0.50"
>0.50
  (CNANDOR on 2003-04-07)</option>
<option
  
  value="CNANDOR/Mac-Carbon-0.05"
>0.05
  (CNANDOR on 2003-03-07)</option>
<option
  
  value="CNANDOR/Mac-Carbon-0.04"
>0.04
  (CNANDOR on 2003-03-06)</option>
<option
  
  value="CNANDOR/Mac-Carbon-0.03"
>0.03
  (CNANDOR on 2002-12-17)</option>
<option
  
  value="CNANDOR/Mac-Carbon-0.02"
>0.02
  (CNANDOR on 2002-12-10)</option>
<option
  
  value="CNANDOR/Mac-Carbon-0.01"
>0.01
  (CNANDOR on 2002-11-13)</option>
</optgroup>
</select>
    </li>

    <li>
<ul class="dependencies">
  <li class="nav-header">Dependencies</li>
  <li><i class="ttip" title="dynamic_config enabled">unknown</i></li>
  <li>
    <hr>
  </li>
  <li>
    <a href="https://metacpan.org/module/Mac::Carbon/requires">Reverse dependencies</a>
  </li>
  <li>
    <a href="http://deps.cpantesters.org/?module=Mac%3A%3ACarbon">CPAN Testers List</a>
  </li>
  <li>
    <a href="https://cpandeps.grinnz.com/?dist=Mac-Carbon">Dependency graph</a>
  </li>
</ul>
    </li>
    <li class="nav-header">Permalinks</li>
    <li>
      <a href="https://metacpan.org/release/CNANDOR/Mac-Carbon-0.82/view/Carbon.pm">This version</a>
    </li>
    <li>
      <a href="./Mac::Carbon.html">Latest version</a>
    </li>
    <li>
<div class="plussers">
<div class="nav-header">++ed by:</div>
<div>
<a class="display-all" href="https://metacpan.org/author/DELON"><img src="https://www.gravatar.com/avatar/8a316157de5eaa39f351b1725c4641d0?d=identicon&amp;s=20" title="DELON" alt="DELON"></a>
</div>
<!-- Display counts of plussers-->
<div>
    <a href="https://metacpan.org/dist/Mac-Carbon/plussers">1 PAUSE user</a>
</div>
</div>
    </li>
    <li>
    </li>
              </ul>
            </div>
          </nav>
          <div class="content-navigation">
<div class="breadcrumbs">
  <span>
    <a data-keyboard-shortcut="g a" rel="author" href="https://metacpan.org/author/CNANDOR" class="author-name">Chris Nandor</a>
  </span>
  <span>&nbsp;/&nbsp;</span>
  <div class="release dist-release status-latest maturity-released">
    <span class="dropdown"><b class="caret"></b></span>
<select onchange="document.location.href=&#39;/release/&#39;+this.value+&#39;/view/Carbon.pm&#39;" class="">
<option
  selected
  value="CNANDOR/Mac-Carbon-0.82"
>0.82
  (CNANDOR on 2009-10-06)</option>
<option
  
  value="CNANDOR/Mac-Carbon-0.81"
>0.81
  (CNANDOR on 2009-09-27)</option>
<option
  
  value="CNANDOR/Mac-Carbon-0.80"
>0.80
  (CNANDOR on 2009-09-17)</option>
<option
  
  value="CNANDOR/Mac-Carbon-0.77"
>0.77
  (CNANDOR on 2006-07-07)</option>
<option
  
  value="CNANDOR/Mac-Carbon-0.76"
>0.76
  (CNANDOR on 2006-06-22)</option>
<option
  
  value="CNANDOR/Mac-Carbon-0.75"
>0.75
  (CNANDOR on 2006-06-20)</option>
<option
  
  value="CNANDOR/Mac-Carbon-0.74"
>0.74
  (CNANDOR on 2005-05-15)</option>
<option
  
  value="CNANDOR/Mac-Carbon-0.73"
>0.73
  (CNANDOR on 2005-05-04)</option>
<option
  
  value="CNANDOR/Mac-Carbon-0.72"
>0.72
  (CNANDOR on 2005-03-09)</option>
<option
  
  value="CNANDOR/Mac-Carbon-0.71"
>0.71
  (CNANDOR on 2005-02-20)</option>
<optgroup label="BackPAN">'
<option
  
  value="CNANDOR/Mac-Carbon-0.70"
>0.70
  (CNANDOR on 2004-05-11)</option>
<option
  
  value="CNANDOR/Mac-Carbon-0.66"
>0.66
  (CNANDOR on 2004-03-24)</option>
<option
  
  value="CNANDOR/Mac-Carbon-0.65"
>0.65
  (CNANDOR on 2004-03-10)</option>
<option
  
  value="CNANDOR/Mac-Carbon-0.64"
>0.64
  (CNANDOR on 2004-02-19)</option>
<option
  
  value="CNANDOR/Mac-Carbon-0.63"
>0.63
  (CNANDOR on 2003-11-21)</option>
<option
  
  value="CNANDOR/Mac-Carbon-0.62"
>0.62
  (CNANDOR on 2003-10-31)</option>
<option
  
  value="CNANDOR/Mac-Carbon-0.61"
>0.61
  (CNANDOR on 2003-10-28)</option>
<option
  
  value="CNANDOR/Mac-Carbon-0.60"
>0.60
  (CNANDOR on 2003-10-28)</option>
<option
  
  value="CNANDOR/Mac-Carbon-0.54"
>0.54
  (CNANDOR on 2003-08-13)</option>
<option
  
  value="CNANDOR/Mac-Carbon-0.53"
>0.53
  (CNANDOR on 2003-06-25)</option>
<option
  
  value="CNANDOR/Mac-Carbon-0.52"
>0.52
  (CNANDOR on 2003-05-23)</option>
<option
  
  value="CNANDOR/Mac-Carbon-0.51"
>0.51
  (CNANDOR on 2003-04-07)</option>
<option
  
  value="CNANDOR/Mac-Carbon-0.50"
>0.50
  (CNANDOR on 2003-04-07)</option>
<option
  
  value="CNANDOR/Mac-Carbon-0.05"
>0.05
  (CNANDOR on 2003-03-07)</option>
<option
  
  value="CNANDOR/Mac-Carbon-0.04"
>0.04
  (CNANDOR on 2003-03-06)</option>
<option
  
  value="CNANDOR/Mac-Carbon-0.03"
>0.03
  (CNANDOR on 2002-12-17)</option>
<option
  
  value="CNANDOR/Mac-Carbon-0.02"
>0.02
  (CNANDOR on 2002-12-10)</option>
<option
  
  value="CNANDOR/Mac-Carbon-0.01"
>0.01
  (CNANDOR on 2002-11-13)</option>
</optgroup>
</select>
    <a data-keyboard-shortcut="g d" class="release-name" href="https://metacpan.org/dist/Mac-Carbon">Mac-Carbon-0.82</a>
  </div>
<span class="river-gauge-gauge">
  <svg width="24px"
       height="15px"
       version="1.1"
       xmlns="http://www.w3.org/2000/svg"
       xmlns:xlink="http://www.w3.org/1999/xlink">

    <g>
      <title>        River stage one &#10;
          • 2 direct dependents &#10;          • 2 total dependents
      </title>

      <rect x="0"  y="0" width="4" height="15" fill="#7ea3f2" />
      <rect x="5"  y="0" width="4" height="15" fill="#e4e2e2" />
      <rect x="10"  y="0" width="4" height="15" fill="#e4e2e2" />
      <rect x="15"  y="0" width="4" height="15" fill="#e4e2e2" />
      <rect x="20"  y="0" width="4" height="15" fill="#e4e2e2" />
    </g>
  </svg>

</span>
<div id="Mac-Carbon-fav" class="logged_in">
<form action="https://metacpan.org/account/favorite/add" style="display: inline" onsubmit="return favDistribution(this)">
    <input type="hidden" name="remove" value="0">
    <input type="hidden" name="release" value="Mac-Carbon-0.82">
    <input type="hidden" name="author" value="CNANDOR">
    <input type="hidden" name="distribution" value="Mac-Carbon">
    <button type="submit" class="favorite highlight"><span>1</span> ++</button>
</form>
</div>
<div class="logged_out">
<a href="./Mac::Carbon.html" onclick="alert('Please sign in to add favorites'); return false" class="favorite highlight">
<span>1</span> ++</a>
</div>
   / <span>Mac::Carbon</span>
</div>
          </div>
          <main class="content">


<nav class="toc">
  <div class="toc-header"><strong>Contents</strong></div>
<ul>
  <li><a href="./Mac::Carbon.html#NAME">NAME</a></li>
  <li><a href="./Mac::Carbon.html#SYNOPSIS">SYNOPSIS</a></li>
  <li><a href="./Mac::Carbon.html#DESCRIPTION">DESCRIPTION</a></li>
  <li><a href="./Mac::Carbon.html#TOOLBOX-MAPPINGS">TOOLBOX MAPPINGS</a>
    <ul>
      <li><a href="./Mac::Carbon.html#Function-mappings">Function mappings</a></li>
      <li><a href="./Mac::Carbon.html#Data-structure-mappings">Data structure mappings</a></li>
    </ul>
  </li>
  <li><a href="./Mac::Carbon.html#MAC-OS-X-DIFFERENCES">MAC OS X DIFFERENCES</a></li>
  <li><a href="./Mac::Carbon.html#64-BIT-PERL">64-BIT PERL</a></li>
  <li><a href="./Mac::Carbon.html#INTEL-ISSUES">INTEL ISSUES</a></li>
  <li><a href="./Mac::Carbon.html#PACKAGES-AND-EXPORT-TAGS">PACKAGES AND EXPORT TAGS</a></li>
  <li><a href="./Mac::Carbon.html#UNSUPPORTED-FUNCTIONS">UNSUPPORTED FUNCTIONS</a>
    <ul>
      <li><a href="./Mac::Carbon.html#Functions-supported-only-in-Mac-OS">Functions supported only in Mac OS</a></li>
      <li><a href="./Mac::Carbon.html#Functions-supported-only-in-Mac-OS-X">Functions supported only in Mac OS X</a></li>
    </ul>
  </li>
  <li><a href="./Mac::Carbon.html#KNOWN-BUGS">KNOWN BUGS</a></li>
  <li><a href="./Mac::Carbon.html#AUTHOR">AUTHOR</a></li>
  <li><a href="./Mac::Carbon.html#THANKS">THANKS</a></li>
  <li><a href="./Mac::Carbon.html#SEE-ALSO">SEE ALSO</a></li>
</ul></nav>
<div class="pod anchors">
<h1 id="NAME">NAME</h1>

<p>Mac::Carbon - Access to Mac OS Carbon API</p>

<h1 id="SYNOPSIS">SYNOPSIS</h1>

<pre><code>        use Mac::Carbon;
        use Mac::Carbon qw(:files :morefiles);</code></pre>

<h1 id="DESCRIPTION">DESCRIPTION</h1>

<p>This module provides documentation of the Mac::Carbon modules, and acts as a frontend to them.</p>

<p>Mac::Carbon is a collection of perl modules for accessing the Carbon API under Mac OS X. It is a port of the Toolbox modules written by Matthias Neeracher for MacPerl.</p>

<p>This module will load in all the Carbon modules, and export all of the functions, constants, and other variables. An export tag is set up for each module, so they may be selected individually.</p>

<p>This module exists primarily because in Mac OS X, all the Carbon functions are imported into a C program with a single header, Carbon.h, so Mac OS X users may prefer to load in the entire Carbon API with a single module.</p>

<p>For detailed information on the Carbon API (highly recommended, as a familiarity with Carbon is assumed in the POD), see apple.com.</p>

<pre><code>        http://developer.apple.com/techpubs/macosx/Carbon/</code></pre>

<p>The documentation is also located on your system, if you have the Developer Tools installed, at /Developer/Documentation/Carbon/.</p>

<p>Also of significant use are the related header files on your system. Use the `locate` command to find them. They contain current documentation and notes for the API.</p>

<p>The modules were written for Mac OS originally, and are in part being ported to Carbon. You may also be interested in the original documentation.</p>

<pre><code>        http://developer.apple.com/techpubs/macos8/</code></pre>

<h1 id="TOOLBOX-MAPPINGS"><a id="TOOLBOX"></a>TOOLBOX MAPPINGS</h1>

<p>Swiped from Mac/Toolbox.pod in the MacPerl distribution.</p>

<p>The Macintosh Operating System provides a rich API with thousands of <i>toolbox</i> calls. The MacPerl toolbox modules aim to make as much as possible of this functionality available to MacPerl programmers. The mapping of the toolbox interfaces into MacPerl is intended to be</p>

<ol>

<li><p>Convenient to use for Perl programmers.</p>

</li>
<li><p>As close as possible to the C interfaces.</p>

</li>
</ol>

<p>This translates into a mapping strategy which is discussed in the following sections.</p>

<h2 id="Function-mappings"><a id="Function"></a>Function mappings</h2>

<p>MacPerl toolbox calls take their input arguments in the same order as the corresponding toolbox functions. Output arguments are never passed by reference, but returned from the calls. If there are several output arguments, a list is returned. If an error occurs, the function returns <code>undef</code> or <code>()</code> and the error code is available in the <code>$^E</code> variable.</p>

<pre><code>        $port = GetPort();
        SetPort($port);
        $desc = AECreateDesc(&quot;TEXT&quot;, &quot;Hello, World&quot;) or die $^E;</code></pre>

<h2 id="Data-structure-mappings"><a id="Data"></a>Data structure mappings</h2>

<p>Complex data structures are mapped into blessed references. Data fields are available through member functions which return the value of a field if called without an argument and change the value if called with an argument.</p>

<pre><code>        $rect = Rect-&gt;new(10, 20, 110, 220);
        $rect-&gt;top;
        $rect-&gt;right(250);</code></pre>

<h1 id="MAC-OS-X-DIFFERENCES"><a id="MAC"></a>MAC OS X DIFFERENCES</h1>

<p>The modules follow the same API under Mac OS X as Mac OS, except that the non-Carbon API is not supported (for example, <code>NewHandle</code> is supported, but <code>NewHandleSys</code> is not). Calling a function not supported by Carbon will generate an exception.</p>

<p>In each module&#39;s documentation, functions that work only under Mac OS (non-Carbon) are marked with <b>Mac OS only.</b> Those that work only under Mac OS X (Carbon) are marked with <b>Mac OS X only.</b> A complete list is at the end of this document.</p>

<p>The MacPerl package is automatically bootstrapped in MacPerl; it is included here, though the app-specific functions (Reply, Quit) are not supported, and the MacPerl package must be loaded explicitly (e.g., <code>use MacPerl;</code>). Also, Ask/Answer/Pick are provided via AppleScript, talking to the SystemUIServer process.</p>

<p>The Mac-specific error codes are put in <code>$^E</code> as in MacPerl, but <code>$^E</code> does not automatically convert the numeric error into a string in string context. See brian d foy&#39;s <a href="https://metacpan.org/pod/Mac::Errors">Mac::Errors</a> module on the CPAN for this:</p>

<pre><code>        use Mac::Errors &#39;$MacError&#39;;
        my $info1 = FSpGetCatInfo($file1) or die $^E + 0;    # error number
        my $info2 = FSpGetCatInfo($file2) or die $MacError;  # error string</code></pre>

<p><a href="https://metacpan.org/pod/Mac::Errors">Mac::Errors</a> is not included with or required by Mac::Carbon, but it is highly recommended.</p>

<p><code>$!</code> is set at the same time <code>$^E</code> is set. This is different behavior from MacPerl, but similar to other platforms. On MacPerl, <code>$^E</code> is signed, and on Unix it is unsigned, so to get the numeric value from <code>$^E</code>, just add 0, as above. Could be worse.</p>

<p>Files are passed back and forth using Unix/POSIX filespecs (if you care about the gory details, a portion of the GUSI API has been reimplemented here, and it handles the conversions). Similarly, times are converted back and forth from the Mac OS epoch to the Unix epoch.</p>

<p>The support functions are in <i>Carbon.h</i>. See that file for descriptions of the issues, including bugs and possibilities for bugs, involved.</p>

<h1 id="64-BIT-PERL"><a id="64"></a><a id="BIT-PERL"></a>64-BIT PERL</h1>

<p>Significant portions of the Carbon API are unavailable to 64-bit programs on Mac OS X. Perhaps a subset of the API could be made available to a 64-bit perl (for more information see Apple&#39;s &quot;64-Bit Guide for Carbon Developers&quot;), and might in the future, but it&#39;s simpler at this point to just run perl in 32-bit mode.</p>

<p>There&#39;s a few ways to do this. Most obviously, you could simply build a 32-bit perl. I always build my own perl, and I just compile it for 32 bits.</p>

<p>There&#39;s also two methods mentioned in <a href="./Mac::Carbon.html#man-perl">&quot;man perl&quot;</a> under Mac OS X 10.6: you can set an environment variable, or set a system preference. For the environment use:</p>

<pre><code>        VERSIONER_PERL_PREFER_32_BIT=yes</code></pre>

<p>And for the system preference, execute this line in your terminal:</p>

<pre><code>        defaults write com.apple.versioner.perl Prefer-32-Bit -bool yes</code></pre>

<h1 id="INTEL-ISSUES"><a id="INTEL"></a>INTEL ISSUES</h1>

<p>There are very few issues on Intel. They mostly center around the fact that a Mac four-char-code is often treated as a string in Perl-space, but in C-space is an integer. The conversion process results in various errors.</p>

<p>Four-char-code types include typeType, typeEnumerated, typeProperty, typeKeyword, and typeApplSignature.</p>

<p>There are a few Don&#39;t Do Thats to keep in mind.</p>

<ul>

<li><p>Don&#39;t change the type of an existing AEDesc; coerce it to a new desc instead, with AECoerceDesc(). This is generally good advice anyway.</p>

</li>
<li><p>Don&#39;t pass four-char-codes as arguments to AEBuild*; there&#39;s no easy way for the called function to know what type the argument is going to be passed as, and to fix the data before it is passed. Four-char-codes can be literals in AEBuild formats; this is a better method to use, when possible. For example:</p>

<pre><code>        AEBuild(q{&#39;----&#39;:type(@)}, typeProperty);  # don&#39;t
        AEBuild(q{&#39;----&#39;:type(prop)});             # do</code></pre>

</li>
<li><p>Similarly, when using AEStream, don&#39;t pass a four-char-code to WriteData(), if you can avoid it. Use one of the methods that allow type specification (such as WriteDesc and WriteKeyDesc).</p>

</li>
<li><p>Don&#39;t try to parse binary data when you don&#39;t have to; use the API. For example, one of the example files for Mac::Speech parsed the creator ID out of the binary data structure instead of calling the API, and got the string reversed.</p>

</li>
</ul>

<h1 id="PACKAGES-AND-EXPORT-TAGS"><a id="PACKAGES"></a>PACKAGES AND EXPORT TAGS</h1>

<p>See each individual module for more information on use. See <i>README</i> for more information about modules not included here.</p>

<pre><code>        Mac::AppleEvents        appleevents
        Mac::Components         components
        Mac::Files              files
        Mac::Gestalt            gestalt
        Mac::InternetConfig     internetconfig
        Mac::Memory             memory
        Mac::MoreFiles          morefiles
        Mac::Notification       notification
        Mac::OSA                osa     
        Mac::Processes          processes
        Mac::Resources          resources
        Mac::Sound              sound
        Mac::Speech             speech
        Mac::Types              types
        MacPerl                 macperl</code></pre>

<h1 id="UNSUPPORTED-FUNCTIONS"><a id="UNSUPPORTED"></a>UNSUPPORTED FUNCTIONS</h1>

<h2 id="Functions-supported-only-in-Mac-OS"><a id="Functions"></a>Functions supported only in Mac OS</h2>

<p>The functions below are supported only in Mac OS, and not in Mac OS X, either because they are not supported by Carbon, or make no sense on Mac OS X.</p>

<dl>

<dt id="Mac::AppleEvents"><a id="Mac"></a>Mac::AppleEvents</dt>
<dd>

<dl>

<dt id="AECountSubDescItems">AECountSubDescItems</dt>
<dd>

</dd>
<dt id="AEDescToSubDesc">AEDescToSubDesc</dt>
<dd>

</dd>
<dt id="AEGetKeySubDesc">AEGetKeySubDesc</dt>
<dd>

</dd>
<dt id="AEGetNthSubDesc">AEGetNthSubDesc</dt>
<dd>

</dd>
<dt id="AEGetSubDescBasicType">AEGetSubDescBasicType</dt>
<dd>

</dd>
<dt id="AEGetSubDescData">AEGetSubDescData</dt>
<dd>

</dd>
<dt id="AEGetSubDescType">AEGetSubDescType</dt>
<dd>

</dd>
<dt id="AESubDescIsListOrRecord">AESubDescIsListOrRecord</dt>
<dd>

</dd>
<dt id="AESubDescToDesc">AESubDescToDesc</dt>
<dd>

</dd>
</dl>

</dd>
<dt id="Mac::Files"><a id="Mac1"></a>Mac::Files</dt>
<dd>

<dl>

<dt id="Eject">Eject</dt>
<dd>

</dd>
</dl>

</dd>
<dt id="Mac::InternetConfig"><a id="Mac2"></a>Mac::InternetConfig</dt>
<dd>

<dl>

<dt id="ICChooseConfig">ICChooseConfig</dt>
<dd>

</dd>
<dt id="ICChooseNewConfig">ICChooseNewConfig</dt>
<dd>

</dd>
<dt id="ICGeneralFindConfigFile">ICGeneralFindConfigFile</dt>
<dd>

</dd>
<dt id="ICGetConfigReference">ICGetConfigReference</dt>
<dd>

</dd>
<dt id="ICGetComponentInstance">ICGetComponentInstance</dt>
<dd>

</dd>
<dt id="ICSetConfigReference">ICSetConfigReference</dt>
<dd>

</dd>
</dl>

</dd>
<dt id="Mac::Memory"><a id="Mac3"></a>Mac::Memory</dt>
<dd>

<dl>

<dt id="CompactMemSys">CompactMemSys</dt>
<dd>

</dd>
<dt id="FreeMemSys">FreeMemSys</dt>
<dd>

</dd>
<dt id="GetApplLimit">GetApplLimit</dt>
<dd>

</dd>
<dt id="MaxBlockSys">MaxBlockSys</dt>
<dd>

</dd>
<dt id="MaxBlockSysClear">MaxBlockSysClear</dt>
<dd>

</dd>
<dt id="MaxMemSys">MaxMemSys</dt>
<dd>

</dd>
<dt id="NewEmptyHandleSys">NewEmptyHandleSys</dt>
<dd>

</dd>
<dt id="NewHandleSys">NewHandleSys</dt>
<dd>

</dd>
<dt id="NewHandleSysClear">NewHandleSysClear</dt>
<dd>

</dd>
<dt id="NewPtrSys">NewPtrSys</dt>
<dd>

</dd>
<dt id="NewPtrSysClear">NewPtrSysClear</dt>
<dd>

</dd>
<dt id="PurgeMemSys">PurgeMemSys</dt>
<dd>

</dd>
<dt id="ReserveMemSys">ReserveMemSys</dt>
<dd>

</dd>
</dl>

</dd>
<dt id="Mac::Processes"><a id="Mac4"></a>Mac::Processes</dt>
<dd>

<dl>

<dt id="LaunchDeskAccessory">LaunchDeskAccessory</dt>
<dd>

</dd>
</dl>

</dd>
<dt id="Mac::Resources"><a id="Mac5"></a>Mac::Resources</dt>
<dd>

<dl>

<dt id="CreateResFile">CreateResFile</dt>
<dd>

</dd>
<dt id="OpenResFile">OpenResFile</dt>
<dd>

</dd>
<dt id="RGetResource">RGetResource</dt>
<dd>

</dd>
</dl>

</dd>
<dt id="Mac::Sound"><a id="Mac6"></a>Mac::Sound</dt>
<dd>

<dl>

<dt id="Comp3to1">Comp3to1</dt>
<dd>

</dd>
<dt id="Comp6to1">Comp6to1</dt>
<dd>

</dd>
<dt id="Exp1to3">Exp1to3</dt>
<dd>

</dd>
<dt id="Exp1to6">Exp1to6</dt>
<dd>

</dd>
<dt id="MACEVersion">MACEVersion</dt>
<dd>

</dd>
<dt id="SndControl">SndControl</dt>
<dd>

</dd>
<dt id="SndPauseFilePlay">SndPauseFilePlay</dt>
<dd>

</dd>
<dt id="SndRecordToFile">SndRecordToFile</dt>
<dd>

</dd>
<dt id="SndStartFilePlay">SndStartFilePlay</dt>
<dd>

</dd>
<dt id="SndStopFilePlay">SndStopFilePlay</dt>
<dd>

</dd>
<dt id="SPBRecordToFile">SPBRecordToFile</dt>
<dd>

</dd>
</dl>

</dd>
<dt id="MacPerl">MacPerl</dt>
<dd>

<dl>

<dt id="Choose">Choose</dt>
<dd>

</dd>
<dt id="ErrorFormat">ErrorFormat</dt>
<dd>

</dd>
<dt id="FAccess">FAccess</dt>
<dd>

</dd>
<dt id="LoadExternals">LoadExternals</dt>
<dd>

</dd>
<dt id="Quit">Quit</dt>
<dd>

</dd>
<dt id="Reply">Reply</dt>
<dd>

</dd>
</dl>

</dd>
</dl>

<h2 id="Functions-supported-only-in-Mac-OS-X"><a id="Functions1"></a>Functions supported only in Mac OS X</h2>

<p>The functions below are supported only in Mac OS X, and not in Mac OS, either because they are newer APIs, or make no sense on Mac OS.</p>

<dl>

<dt id="Mac::Processes1"><a id="Mac7"></a>Mac::Processes</dt>
<dd>

<dl>

<dt id="GetProcessForPID">GetProcessForPID</dt>
<dd>

</dd>
<dt id="GetProcessPID">GetProcessPID</dt>
<dd>

</dd>
<dt id="LSFindApplicationForInfo">LSFindApplicationForInfo</dt>
<dd>

</dd>
</dl>

</dd>
<dt id="Mac::Resources1"><a id="Mac8"></a>Mac::Resources</dt>
<dd>

<dl>

<dt id="FSCreateResourceFile">FSCreateResourceFile</dt>
<dd>

</dd>
<dt id="FSOpenResourceFile">FSOpenResourceFile</dt>
<dd>

</dd>
</dl>

</dd>
</dl>

<h1 id="KNOWN-BUGS"><a id="KNOWN"></a>KNOWN BUGS</h1>

<p>See <a href="http://rt.cpan.org/NoAuth/Bugs.html?Dist=Mac-Carbon">http://rt.cpan.org/NoAuth/Bugs.html?Dist=Mac-Carbon</a> for more information.</p>

<ul>

<li><p>Need more tests for:</p>

<dl>

<dt id="Mac::Memory1"><a id="Mac9"></a>Mac::Memory</dt>
<dd>

<p>Should be more comprehensive for very little-used functions; main functionality is tested OK.</p>

</dd>
<dt id="Mac::Sound1"><a id="Mac10"></a>Mac::Sound</dt>
<dd>

<p>Same.</p>

</dd>
<dt id="Mac::Resources2"><a id="Mac11"></a>Mac::Resources</dt>
<dd>

<p>Tested really only in other test suites, like Mac::Sound. Should be more comprehensive.</p>

</dd>
<dt id="Mac::Components"><a id="Mac12"></a>Mac::Components</dt>
<dd>

<p>Same.</p>

</dd>
<dt id="Mac::Files1"><a id="Mac13"></a>Mac::Files</dt>
<dd>

<p>Very good, but could do more exhausative FindFolder() tests.</p>

</dd>
<dt id="Mac::Processes2"><a id="Mac14"></a>Mac::Processes</dt>
<dd>

<p>Tests not very good, but tested pretty extensively by Mac::Glue and friends.</p>

</dd>
<dt id="Mac::MoreFiles"><a id="Mac15"></a>Mac::MoreFiles</dt>
<dd>

<p>Same.</p>

</dd>
<dt id="Mac::OSA"><a id="Mac16"></a>Mac::OSA</dt>
<dd>

<p>Same.</p>

</dd>
<dt id="Mac::InternetConfig1"><a id="Mac17"></a>Mac::InternetConfig</dt>
<dd>

<p>No real testing done.</p>

</dd>
</dl>

</li>
<li><p>In a few places, we need to know a text encoding, and assume it (such as in LSFindApplicationForInfo(), where Latin-1 is assumed). This is likely incorrect.</p>

</li>
<li><p>FSSpecs are limited to 31 characters. Ugh. Provide access to newer FSRef-based APIs.</p>

</li>
<li><p>Not specific to the Carbon versions: the Mac:: modules define classes such as <code>Handle</code> which probably should be something else, like <code>Mac::Handle</code> or <code>Mac::Carbon::Handle</code> or <code>Mac::Memory::Handle</code> (other examples include <code>AEDesc</code>, <code>Point</code>, <code>Rect</code>). No one has really complained before except on principle, but still ...</p>

</li>
<li><p>Can we support XCMDs etc. via XL? Do we want to?</p>

</li>
</ul>

<h1 id="AUTHOR">AUTHOR</h1>

<p>The Mac Toolbox modules were written by Matthias Neeracher &lt;neeracher@mac.com&gt;. They were ported to Mac OS X and are currently maintained by Chris Nandor &lt;pudge@pobox.com&gt;.</p>

<h1 id="THANKS">THANKS</h1>

<p>Michael Blakeley, Emmanuel. M. Decarie, Matthew Drayton, brian d foy, David Hand, Gero Herrmann, Peter N Lewis, Paul McCann, Sherm Pendley, Randal Schwartz, Michael Schwern, John Siracusa, Dan Sugalksi, Ken Williams, Steve Zellers.</p>

<h1 id="SEE-ALSO"><a id="SEE"></a>SEE ALSO</h1>

<p>perl(1).</p></div>

<div id="metacpan_install-instructions-dialog" class="modal fade">
  <div class="modal-dialog">
    <div class="modal-content">
      <div class="modal-header">
        <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
        <h4 class="modal-title">Module Install Instructions</h4>
      </div>
      <div class="modal-body">
        <p>To install Mac::Carbon, copy and paste the appropriate command in to your terminal.</p>
        <p><a href="https://metacpan.org/dist/App-cpanminus/view/bin/cpanm">cpanm</a></p>
        <pre><code>cpanm Mac::Carbon</code></pre>
        <p><a href="https://metacpan.org/pod/CPAN">CPAN shell</a></p>
        <pre><code>perl -MCPAN -e shell
install Mac::Carbon</code></pre>
        <p>For more information on module installation, please visit <a href="https://www.cpan.org/modules/INSTALL.html">the detailed CPAN module installation guide</a>.</p>
      </div>
      <div class="modal-footer">
        <a href="./Mac::Carbon.html#" data-dismiss="modal" class="btn">Close</a>
      </div>
    </div>
  </div>
</div>
          </main>
          <div class="content-pagination">
          </div>
        </div>
        <footer class="footer">
          <div class="footer-container">
            <div class="footer-social">
              <div class="footer-link footer-logo">
                <a href="https://metacpan.org/">
                  <img src="https://metacpan.org/static/images/metacpan-logo.svg" alt="MetaCPAN" />
                </a>
              </div>
              <a class="footer-social-link" href="https://github.com/metacpan">
                <i class="fab fa-github-square"></i>
              </a>
              <a class="footer-social-link" href="https://fosstodon.org/@metacpan">
                <i class="fab fa-mastodon"></i>
              </a>
            </div>
            <div class="footer-links">
              <div class="footer-link">
                  <a href="https://metacpan.org/about">About</a>
              </div>
              <div class="footer-link">
                  <a href="https://metacpan.org/about/sponsors">Sponsor</a>
              </div>
              <div class="footer-link">
                  <a href="https://grep.metacpan.org">grep::cpan</a>
              </div>
              <div class="footer-link">
                  <a href="https://metacpan.org/recent">Recent</a>
              </div>
              <div class="footer-link">
                  <a href="https://metacpan.org/about/faq">FAQ</a>
              </div>
              <div class="footer-link">
                  <a href="https://metacpan.org/tools">Tools</a>
              </div>
              <div class="footer-link">
                  <a href="https://fastapi.metacpan.org/">API</a>
              </div>
              <div class="footer-link">
                  <a href="https://www.perl.org/">Perl.org</a>
              </div>
            </div>
            <div class="footer-sponsors">
              <a class="footer-sponsor-link" target="_blank" href="https://www.bytemark.co.uk/" rel="noopener">
                <img class="footer-sponsor-bytemark" src="https://metacpan.org/static/images/sponsors/bytemark_logo.svg" alt="Bytemark logo">
              </a>
              <a class="footer-sponsor-link" target="_blank" href="https://www.liquidweb.com/" rel="noopener">
                <img class="footer-sponsor-liquidweb" src="https://metacpan.org/static/images/sponsors/liquidweb_logo.png" alt="liquidweb logo">
              </a>
              <a class="footer-sponsor-link" target="_blank" href="https://deriv.com/careers/" rel="noopener">
                <img class="footer-sponsor-deriv" src="https://metacpan.org/static/images/sponsors/deriv.svg" alt="Deriv logo">
              </a>
              <a class="footer-sponsor-link" target="_blank" href="https://geocode.xyz" rel="noopener">
                <img class="footer-sponsor-geocode" src="https://metacpan.org/static/images/sponsors/geocodelogo.svg" alt="Geocode logo">
              </a>
              <a class="footer-sponsor-link" target="_blank" href="https://www.fastly.com/" rel="noopener">
                <img class="footer-sponsor-fastly" src="https://metacpan.org/static/images/sponsors/fastly_logo.svg" alt="Fastly logo">
              </a>
              <a class="footer-sponsor-link" target="_blank" href="https://opencagedata.com" rel="noopener">
                <img class="footer-sponsor-opencage" src="https://metacpan.org/static/images/sponsors/open-cage.svg" alt="OpenCage logo">
              </a>
            </div>
          </div>
        </footer>
        <div class="modal fade" tabindex="-1" role="dialog" id="metacpan_keyboard-shortcuts">
          <div class="modal-dialog">
            <div class="modal-content">
              <div class="modal-header">
                <button type="button" class="close" data-dismiss="modal">&times;</button>
                <h4 class="modal-title">Keyboard Shortcuts</h4>
              </div>
              <div class="modal-body row">
<div class="col-md-6">
  <table class="table keyboard-shortcuts">
    <thead>
      <tr>
        <th></th>
        <th>Global</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td class="keys">
          <kbd>s</kbd>
        </td>
        <td>Focus search bar</td>
      </tr>
      <tr>
        <td class="keys">
          <kbd>?</kbd>
        </td>
        <td>Bring up this help dialog</td>
      </tr>
    </tbody>
  </table>

  <table class="table keyboard-shortcuts">
    <thead>
      <tr>
        <th></th>
        <th>GitHub</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td class="keys">
          <kbd>g</kbd> <kbd>p</kbd>
        </td>
        <td>Go to pull requests</td>
      </tr>
      <tr>
        <td class="keys">
          <kbd>g</kbd> <kbd>i</kbd>
        </td>
        <td>go to github issues (only if github is preferred repository)</td>
      </tr>
    </tbody>
  </table>
</div>

<div class="col-md-6">
  <table class="table keyboard-shortcuts">
    <thead>
      <tr>
        <th></th>
        <th>POD</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td class="keys">
          <kbd>g</kbd> <kbd>a</kbd>
        </td>
        <td>Go to author</td>
      </tr>
      <tr>
        <td class="keys">
          <kbd>g</kbd> <kbd>c</kbd>
        </td>
        <td>Go to changes</td>
      </tr>
      <tr>
        <td class="keys">
          <kbd>g</kbd> <kbd>i</kbd>
        </td>
        <td>Go to issues</td>
      </tr>
      <tr>
        <td class="keys">
          <kbd>g</kbd> <kbd>d</kbd>
        </td>
        <td>Go to dist</td>
      </tr>
      <tr>
        <td class="keys">
          <kbd>g</kbd> <kbd>r</kbd>
        </td>
        <td>Go to repository/SCM</td>
      </tr>
      <tr>
        <td class="keys">
          <kbd>g</kbd> <kbd>s</kbd>
        </td>
        <td>Go to source</td>
      </tr>
      <tr>
        <td class="keys">
          <kbd>g</kbd> <kbd>b</kbd>
        </td>
        <td>Go to file browse</td>
      </tr>

    </tbody>
  </table>
</div>

<div class="col-md-12">
  <table class="table keyboard-shortcuts">
    <thead>
      <tr>
        <th></th>
        <th>Search terms</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><em>module:</em> (e.g. <a href="https://metacpan.org/search?q=module%3APlugin">module:Plugin</a>)</td>
      </tr>
      <tr>
        <td><em>distribution:</em> (e.g. <a href="https://metacpan.org/search?q=distribution%3ADancer+auth">distribution:Dancer auth</a>)</td>
      </tr>
      <tr>
        <td><em>author:</em> (e.g. <a href="https://metacpan.org/search?q=author%3ASONGMU+Redis">author:SONGMU Redis</a>)</td>
      </tr>
      <tr>
        <td><em>version:</em> (e.g. <a href="https://metacpan.org/search?q=version%3A1.00">version:1.00</a>)</td>
      </tr>
    </tbody>
  </table>
</div>
              </div>
              <div class="modal-footer"></div>
            </div>
          </div>
        </div>
    </body>
</html>
